﻿Public Class xtf_LISTADOasiento_
    Public modo As xtf_tipo

    Public Enum xtf_tipo
        cliente = 0
        proveedores = 1
    End Enum

    Public Overrides Sub IniciarLista()
        Try
            gdc_general.BeginUpdate()
            gdv_general.BeginDataUpdate()
            gdv_general.BeginUpdate()
            gdc_general.DataSource = dtt_DataTable
            'ulg_Lista.DisplayLayout.GroupByBox.Style = Infragistics.Win.UltraWinGrid.GroupByBoxStyle.Full

            'Creacion y carga de Cuentas
            dtt_DataTable.Columns.Add("Identificador (ID)")
            dtt_DataTable.Columns.Add("Razón Social")
            dtt_DataTable.Columns.Add("Nombre de Fantasía")
            dtt_DataTable.Columns.Add("Saldo", GetType(Decimal))


            gdv_general.PopulateColumns(dtt_DataTable)


            Select Case modo
                Case xtf_tipo.cliente
                    Dim obj_Cliente_ As New cls_cliente_
                    If obj_Cliente_.CargarTodosLISTA(True, ObtenerRegistroEstado()) Then
                        For Each Cliente As cls_cliente_ In obj_Cliente_.Items
                            AgregarItem(Cliente)
                        Next
                    End If
                Case xtf_tipo.proveedores
                    Dim obj_proveedor_ As New cls_proveedor_
                    If obj_proveedor_.CargarTodos(True, ObtenerRegistroEstado()) Then
                        For Each proveedor As cls_proveedor_ In obj_proveedor_.Items
                            AgregarItem(proveedor)
                        Next
                    End If
            End Select

            'ulg_Lista.DataBind()

            FiltrarColumnas()



            gdv_general.EndUpdate()
            gdv_general.EndDataUpdate()
            gdc_general.EndUpdate()
        Catch ex As Exception
            'Dim frmError As New frm_ErrorManager(ex.Message)
        End Try
    End Sub



    Public Function AgregarItem(ByRef Cliente As Object) As DataRow
        Dim Row As DataRow = dtt_DataTable.NewRow

        Select Case modo
            Case xtf_tipo.cliente
                Row("Identificador (ID)") = Cliente.idcliente
            Case xtf_tipo.proveedores
                Row("Identificador (ID)") = Cliente.idproveedor
        End Select
        Row("Razón Social") = Cliente.razonsocial
        Row("Nombre de Fantasía") = Cliente.nombrefantasia
        Row("Saldo") = Cliente.tercero.saldoAsiento_

        dtt_DataTable.Rows.Add(Row)
        'ulg_Lista.Rows(ulg_Lista.Rows.Count - 1) = Cliente.Height = 19
        Return Row
    End Function

    Public Sub ModificarItem(ByRef Cliente As Object, ByRef ulg_row As DataRow)
        'Select Case modo
        '    Case xtf_tipo.cliente
        '        ulg_row("Identificador (ID)") = Cliente.idcliente
        '    Case xtf_tipo.proveedores
        '        ulg_row("Identificador (ID)") = Cliente.idproveedor
        'End Select

        'ulg_row("Nombre") = Cliente.tercero.ToString
        'ulg_row("Nombre de Fantasía") = Cliente.nombrefantasia
        ulg_row("Saldo") = Cliente.saldoAsiento_
    End Sub

    Public Sub New(ByRef prm_modo As xtf_tipo)

        Me.Cursor = Cursors.WaitCursor
        InitializeComponent()
        modo = prm_modo

        Select Case modo
            Case xtf_tipo.cliente
                PERMISONuevo = "004005002"
                PERMISOModificar = "004005003"
                PERMISOEliminar = "004005004"
                PERMISOImprimir = "004005005"
                lbl_modulo.Text = "Clientes Cta. Cte."
            Case xtf_tipo.proveedores
                PERMISONuevo = "003003002"
                PERMISOModificar = "003003003"
                PERMISOEliminar = "003003004"
                PERMISOImprimir = "003003005"
                lbl_modulo.Text = "Proveedores Cta. Cte."
        End Select
       
        Me.Text = lbl_modulo.Text : lbl_modulodescripcion.Text = "Listado de " & lbl_modulo.Text & "."
        IniciarLista()
        bbi_Nuevo.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
        bbi_eliminar.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
        Me.Cursor = Cursors.Default
    End Sub


    Public Overrides Sub bbi_Modificar_ItemClick(ByVal sender As System.Object, ByVal e As DevExpress.XtraBars.ItemClickEventArgs)
        If ComprobarPermiso(PERMISOModificar) Then
            Try
                Dim cliente As Object = Nothing 'New cls_barrio_
                Select Case modo
                    Case xtf_tipo.cliente
                        cliente = New cls_cliente_
                    Case xtf_tipo.proveedores
                        cliente = New cls_proveedor_
                End Select

                If gdv_general.SelectedRowsCount > 0 Then
                    If cliente.Buscar(gdv_general.GetDataRow(gdv_general.GetSelectedRows(0))("Identificador (ID)")) Then
                        bsi_estado.Caption = "Cargando..."
                        Application.DoEvents()
                        Dim ABM As New xtf_ABMasiento_()  'New xtf_ABMbarrio
                        ABM.Modificar(cliente.tercero, Me, gdv_general.GetDataRow(gdv_general.GetSelectedRows(0)))
                        ABM.ControlarModificaciones(ABM.lac_general.Items)
                        bsi_estado.Caption = "Listo"
                    End If
                End If

            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
        End If
    End Sub

End Class

